package logicQuiz

import org.springframework.cloud.contract.spec.Contract

Contract.make {
    request {
        method("GET")
        url("/api/v3/logicQuizzes/ids") {
            queryParameters {
                parameter("page", 1)
                parameter("pageSize", 10)
                parameter("id", 1)
            }
        }
        headers {
            header("id", 21)
        }
    }
    response {
        status(200)
        body("""
            {
                "content" : [{
                "id":1,
                "hardCount":4,
                "normalCount":3,
                "easyCount":2,
                "timeBoxInMinutes":1,
                "description":"dddd",
                "exampleCount":1,
                "quizGroupId":1,
                "makerId":1,
                "isAvailable":true    
                }],
                "totalElements":1,
            }
            """)
        bodyMatchers {
            jsonPath('$.content[*].id', byRegex(number()))
            jsonPath('$.content[*].hardCount', byRegex(number()))
            jsonPath('$.content[*].normalCount', byRegex(number()))
            jsonPath('$.content[*].easyCount', byRegex(number()))
            jsonPath('$.content[*].timeBoxInMinutes', byRegex(number()))
            jsonPath('$.content[*].description', byRegex("[\\s\\S]+"))
            jsonPath('$.content[*].exampleCount', byRegex(number()))
            jsonPath('$.content[*].quizGroupId', byRegex(number()))
            jsonPath('$.content[*].makerId', byRegex(number()))
            jsonPath('$.content[*].isAvailable', byRegex(anyBoolean()))
            jsonPath('$.totalElements', byRegex(number()))
        }
        headers {
            contentType(applicationJsonUtf8())
        }
    }
}
